package com.gitee.cashzhang27.test.boot.functional.properties;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * Redisson 单节点模式属性.
 *
 * @author Cash Zhang
 * @version v1.0 2020/09/17 10:46
 * @since v1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@ConfigurationProperties(prefix = "spring.redis.redisson.single")
public class RedissonSingleServerProperties extends RedissonBasePatternProperties {

  /**
   * 发布和订阅连接的最小空闲连接数.
   * 默认值：1
   * 用于发布和订阅连接的最小保持连接数（长连接）
   * Redisson内部经常通过发布和订阅来实现许多功能
   * 长期保持一定数量的发布订阅连接是必须的
   */
  private int subscriptionConnectionMinimumIdleSize = 1;

  /**
   * 发布和订阅连接池大小.
   * 默认值：50
   */
  private int subscriptionConnectionPoolSize = 50;

  /**
   * 最小空闲连接数.
   * 默认值：32
   */
  private int connectionMinimumIdleSize = 32;

  /**
   * 连接池大小.
   * 默认值：64
   */
  private int connectionPoolSize = 64;

  /**
   * DNS监测时间间隔，单位：毫秒.
   * 默认值：5秒
   */
  private long dnsMonitoringInterval = 5000;

}
